package org.springframework.security.access.hierarchicalroles;

import org.springframework.security.core.GrantedAuthority;

import java.util.Collection;

/**
 * @author Dillon
 * @date 2024/7/28
 * @slogan 致敬大师 致敬未来的你
 * @desc 定义角色层级转换器接口 转换实现类 RoleHierarchyImpl
 */
public interface RoleHierarchy {

	/**
	 * 转换角色层级 {@link RoleHierarchyImpl}
	 *
	 * @param authorities 转换前角色权限
	 * @return 转换后角色权限
	 */
	Collection<? extends GrantedAuthority> getReachableGrantedAuthorities(
			Collection<? extends GrantedAuthority> authorities);

}
